Distributed Slicing and Partial Re-execution for Distributed Programs
نویسندگان
چکیده
Sofia Abstract We present a parallel algorithm to compute dynamic slices for distributed programs. Dynamic slices are used in debugging to re-execute only those statements of the original program that actually influenced an observed erroneous result. We introduce the notion of a Distributed Dependence Graph (DDG) as the graphical representation of the relevant dependencies among statements that arise during execution of a distributed program. Based on the DDG, we developed a parallel and fully distributed slicing algorithm, where each process determines its local section of the global slice. The potential for non-determinism in distributed programs is addressed by constructing a slice such that non-deterministic selections that were made during execution of the original program are reproduced when re-executing the program slice.
منابع مشابه
Detecting Temporal Logic Predicates in Distributed Programs Using Computation Slicing
Detecting whether a finite execution trace (or a computation) of a distributed program satisfies a given predicate, called predicate detection, is a fundamental problem in distributed systems. It finds applications in many domains such as testing, debugging, and monitoring of distributed programs. However predicate detection suffers from the state explosion problem – the number of possible glob...
متن کاملPartial Order Trace Analyzer (POTA) for Distributed Programs
Checking the correctness of software is a growing challenge. In this paper, we present a prototype implementation of Partial Order Trace Analyzer (POTA), a tool for checking execution traces of both message passing and shared memory programs using temporal logic. So far runtime verification tools have used the total order model of an execution trace, whereas POTA uses a partial order model. The...
متن کاملRe-execution of Distributed Programs to Detect Bugs Hidden by Racing Messages
Finding errors in non-deterministic programs is complicated by the fact that an anomaly may occur during one program execution, and not the next. Our objective is to provide a practical yet powerful testing environment for distributed systems, using re-execution. We focus on re-executing the program, under a strictly different message ordering. We show that messages are grouped into waves, such...
متن کاملSoftware Fault Tolerance of Distributed Programs Using Computation Slicing
Writing correct distributed programs is hard. In spite of extensive testing and debugging, software faults persist even in commercial grade software. Many distributed systems, especially those employed in safety-critical environments, should be able to operate properly even in the presence of software faults. Monitoring the execution of a distributed system, and, on detecting a fault, initiatin...
متن کاملAn Overview of Slicing Techniques for Object-Oriented Programs
This paper surveys the existing slicing techniques for object-oriented programs. Many commercial objectoriented programs are concurrent in nature. Concurrency is typically implemented in the form of multithreading or message passing using sockets or both. We therefore review the available techniques in slicing of concurrent object-oriented programs. Another trend that is clearly visible in obje...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1992